package com.gzsxy.esjy.service.product.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gzsxy.esjy.service.base.dto.request.CategoryRequest;
import com.gzsxy.esjy.service.base.dto.response.CategoryRsp;
import com.gzsxy.esjy.service.base.dto.response.PageResult;
import com.gzsxy.esjy.service.product.entity.Category;
import com.gzsxy.esjy.service.product.entity.vo.CategoryQueryVo;

import java.util.List;

/**
 * <p>
 * 类型 服务类
 * </p>
 *
 * @author zxl
 * @since 2021-11-02
 */
public interface CategoryService extends IService<Category> {

    /**
     * @description: 分页查询商品分类
     *  @param pageParam 分页数据
     * @param categoryQueryVo 查询对象
     * @return
     */
    PageResult<CategoryRsp> selectPage(IPage<?> pageParam, CategoryQueryVo categoryQueryVo);

    /**
     * @description: 添加商品分类
     * @param
     * @return
     */
    void addCategory(CategoryRequest categoryRequest);

    /**
     * @description: 更新商品分类
     * @param
     * @return
     */
    void updateCategory(CategoryRequest categoryRequest);

    /**
     * @description: 删除分类
     * @param
     * @return
     */
    void deleteCategory(String categoryId, Boolean isConform);

    /**
     * @description: 前台根据 分类层级 0: 顶级 1:二级 2:三级 获取分类列表
     * @param
     * @return
     */
    List<CategoryRsp> getByLevel(Integer level);
}
